//
// Created by 21577 on 2025/2/21.
//
#include <stdio.h>
#include <stdlib.h>

#define MAX_SIZE 100

// 定义线性表结构体
typedef struct {
    int data[MAX_SIZE];
    int length;
} SeqList;

// 初始化线性表
void initList(SeqList *list) {
    list->length = 0;
}

// 插入元素到线性表末尾
void insertElement(SeqList *list, int element) {
    if (list->length < MAX_SIZE) {
        list->data[list->length++] = element;
    }
}

// 线性表合并
void mergeLists(SeqList *list1, SeqList *list2, SeqList *result) {
    initList(result);//初始化结果线性表
    // 将list1的元素复制到结果线性表
    for (int i = 0; i < list1->length; i++) {
        insertElement(result, list1->data[i]);
    }
    // 将list2的元素复制到结果线性表
    for (int i = 0; i < list2->length; i++) {
        insertElement(result, list2->data[i]);
    }
}

// 打印线性表
void printList(SeqList *list) {
    for (int i = 0; i < list->length; i++) {
        printf("%d ", list->data[i]);
    }
    printf("\n");
}

int main() {
    SeqList list1, list2, result;
    initList(&list1);
    initList(&list2);

    // 插入元素到list1
    insertElement(&list1, 1);
    insertElement(&list1, 2);
    insertElement(&list1, 3);

    // 插入元素到list2
    insertElement(&list2, 3);
    insertElement(&list2, 5);
    insertElement(&list2, 6);

    // 合并线性表
    mergeLists(&list1, &list2, &result);

    // 打印合并后的线性表
    printf("合并后的线性表: ");
    printList(&result);

    return 0;
}